﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ECommerce.Model.Comercios
{
    public class Comercio : ECommerce.Model.Objeto
    {
        private ECommerce.Model.Comercios.Catálogo[] catálogos;
        public ECommerce.Model.Comercios.Catálogo[] Catálogos
        {
            get { return this.catálogos; }
            set { this.catálogos = value; }
        }
        private ECommerce.Model.Personas.Usuario[] usuarios;
        public ECommerce.Model.Personas.Usuario[] Usuarios
        {
            get { return this.usuarios; }
            set { this.usuarios = value; }
        }
        public override void Load(int ident)
        {
            base.Load(ident);
            this.Id = ident;
            this.Load(ECommerce.DAO.Cache.Comercios.Comercio.GetComercioById(ident));
            if (this.Id == 0)
            {
                this.Id = ident;
                this.Load(ECommerce.DAO.SQL.Comercios.Comercio.GetComercioById(ident));
                this.Catálogos = ECommerce.DAO.Cache.Comercios.Comercio.GetCatálogosByIdComercio(ident);
                if (this.Catálogos == null)
                    this.Catálogos = ECommerce.DAO.SQL.Comercios.Catálogo.GetCatálogosByIdComercio(ident);
                this.Usuarios = ECommerce.DAO.Cache.Personas.Usuario.GetUsuariosByIdComercio(ident);
                if (this.Usuarios == null)
                    this.Usuarios = ECommerce.DAO.SQL.Personas.Usuario.GetUsuariosByIdComercio(ident);
                ECommerce.DAO.Cache.Comercios.Comercio.SetComercio(this);
            }
        }
        public override void Load(System.Data.DataRow dr)
        {
            base.Load(dr);
            ECommerce.Factory.Comercios.Comercio.Load(this, dr);
            ECommerce.DAO.Cache.Comercios.Comercio.SetComercio(this);
        }
        public override void Save()
        {
            base.Save();
            this.Id = ECommerce.DAO.SQL.Comercios.Comercio.SetComercio(this);
            ECommerce.DAO.Cache.Comercios.Comercio.SetComercio(this);
        }
        public override void Del()
        {
            base.Del();
            this.Id = ECommerce.DAO.Cache.Comercios.Comercio.DelComercio(this);
        }
    }
}
